asyncapi: '3.0.0'

info:
  title: Originations Service
  version: '2'
  description: |
    Kafka events for the originations domain.
    Avro schemas are referenced as external files.

defaultContentType: application/json

servers:
  kafka:
    host: localhost:9092
    protocol: kafka

channels:
  originations.event.origination-created:
    address: originations.event.origination-created
    messages:
      OriginationCreatedEvent:
        $ref: '#/components/messages/OriginationCreatedEvent'

  originations.event.origination-step-submitted:
    address: originations.event.origination-step-submitted
    messages:
      OriginationStepSubmittedEvent:
        $ref: '#/components/messages/OriginationStepSubmittedEvent'

  originations.event.origination-completed:
    address: originations.event.origination-completed
    messages:
      OriginationCompletedEvent:
        $ref: '#/components/messages/OriginationCompletedEvent'

operations:
  OriginationCreated_send:
    action: send
    channel:
      $ref: '#/channels/originations.event.origination-created'
  OriginationStepSubmitted_send:
    action: send
    channel:
      $ref: '#/channels/originations.event.origination-step-submitted'
  OriginationCompleted_send:
    action: send
    channel:
      $ref: '#/channels/originations.event.origination-completed'

components:
  messages:
    OriginationCreatedEvent:
      name: OriginationCreated
      summary: Event indicating a new origination was created
      payload:
        $ref: '#/components/schemas/OriginationCreated'

    OriginationStepSubmittedEvent:
      name: OriginationStepSubmitted
      summary: Event emitted when an origination step is submitted
      x-eventcatalog-message-version: '2'
      payload:
        $ref: '#/components/schemas/OriginationStepSubmitted'

    OriginationCompletedEvent:
      name: OriginationCompleted
      summary: Event indicating an origination completed successfully
      payload:
        $ref: '#/components/schemas/OriginationCompleted'

  schemas:
    OriginationCreated:
      schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
      schema:
        $ref: './OriginationCreated.avsc'

    OriginationStepSubmitted:
      schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
      schema:
        $ref: './OriginationStepSubmitted.avsc'

    OriginationCompleted:
      schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
      schema:
        $ref: './OriginationCompleted.avsc'